function formatDate(dateStr: string): string {
    // 解析输入日期
    const targetDate = new Date(dateStr);
    const today = new Date();

    // 确保输入日期有效
    if (isNaN(targetDate.getTime())) {
        return '无效日期';
    }

    // 计算时间差（毫秒）
    const timeDiff = today.getTime() - targetDate.getTime();
    const oneDay = 24 * 60 * 60 * 1000;

    // 计算相差的天数和年数
    const daysDiff = Math.floor(timeDiff / oneDay);
    const yearsDiff = today.getFullYear() - targetDate.getFullYear();

    // 定义星期数组
    const weekDays = ['周日', '周一', '周二', '周三', '周四', '周五', '周六'];

    // 判断时间范围并格式化
    if (yearsDiff > 0) {
        // 超过一年，显示年月日
        return `${targetDate.getFullYear()}-${String(targetDate.getMonth() + 1).padStart(2, '0')}-${String(targetDate.getDate()).padStart(2, '0')}`;
    } else if (daysDiff < 7 && daysDiff >= 0) {
        // 一周内，显示星期几
        const dayOfWeek = targetDate.getDay();
        return weekDays[dayOfWeek];
    } else {
        // 超过一周但在一年内，显示月日
        return `${String(targetDate.getMonth() + 1).padStart(2, '0')}-${String(targetDate.getDate()).padStart(2, '0')}`;
    }
}

export default formatDate;